// #include <iostream>
// #include <winsock2.h>
// #include <string>
// #include <sstream>
// #pragma comment(lib, "ws2_32.lib")

// int main()
// {
//     WSADATA wsaData;
//     WSAStartup(MAKEWORD(2, 2), &wsaData);

//     SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);

//     sockaddr_in serverAddress;
//     serverAddress.sin_family = AF_INET;
//     serverAddress.sin_port = htons(8080); // 监听端口号
//     serverAddress.sin_addr.s_addr = INADDR_ANY;

//     bind(sock, (const struct sockaddr *)&serverAddress, sizeof(serverAddress));

//     listen(sock, SOMAXCONN) == SOCKET_ERROR;

//     std::cout << "Server listening on port 8080..." << std::endl;

//     while (true)
//     {
//         SOCKET clientSocket = accept(sock, NULL, NULL);
//         // 设置为非阻塞方式
//         u_long ul = 1;
//         if (ioctlsocket(clientSocket, FIONBIO, &ul) == SOCKET_ERROR)
//         {
//             std::cout << "ioctlsocket failure, error:" << GetLastError() << std::endl;
//             WSACleanup();
//             return 0;
//         }
//         std::stringstream requestStream;
//         char buffer[1024];
//         int bytesRead;
//         while (true)
//         {
//             std::cout << "request" << std::endl;
//             bytesRead = recv(clientSocket, buffer, sizeof(buffer) - 1, 0);
//             if (bytesRead <= 0)
//             {
//                 // 出现错误或连接关闭，跳出循环
//                 break;
//             }
//             requestStream.write(buffer, bytesRead);
//             // 检查流中是否包含空行，如果是，则跳出循环并处理请求
//             if (requestStream.str().find("\n\n") != std::string::npos)
//             {
//                 std::string request = requestStream.str(); // 获取完整的HTTP请求字符串
//                 // 在这里处理HTTP请求...
//                 break; // 跳出循环
//             }
//         }
//         std::cout << "request" << buffer << std::endl;
//         closesocket(clientSocket);
//     }
//     closesocket(sock);
//     WSACleanup();
//     return 0;
// }